use texlab_protocol::*;

pub static CLIENT_FULL_CAPABILITIES: ClientCapabilities = ClientCapabilities {
    workspace: Some(WorkspaceClientCapabilities {
        configuration: Some(true),
        did_change_watched_files: None,
        workspace_folders: None,
        apply_edit: None,
        execute_command: None,
        symbol: None,
        workspace_edit: None,
        did_change_configuration: None,
    }),
    text_document: Some(TextDocumentClientCapabilities {
        synchronization: None,
        completion: None,
        hover: None,
        signature_help: None,
        references: None,
        document_highlight: None,
        document_symbol: Some(DocumentSymbolCapability {
            dynamic_registration: None,
            hierarchical_document_symbol_support: Some(true),
            symbol_kind: None,
        }),
        formatting: None,
        range_formatting: None,
        on_type_formatting: None,
        declaration: None,
        definition: Some(GotoCapability {
            dynamic_registration: None,
            link_support: Some(true),
        }),
        type_definition: None,
        implementation: None,
        code_action: None,
        code_lens: None,
        document_link: None,
        color_provider: None,
        rename: None,
        publish_diagnostics: None,
        folding_range: None,
    }),
    experimental: None,
    window: Some(WindowClientCapabilities {
        work_done_progress: Some(true),
    }),
};

pub static CLIENT_NO_LINK_CAPABILITIES: ClientCapabilities = ClientCapabilities {
    workspace: Some(WorkspaceClientCapabilities {
        configuration: Some(true),
        did_change_watched_files: None,
        workspace_folders: None,
        apply_edit: None,
        execute_command: None,
        symbol: None,
        workspace_edit: None,
        did_change_configuration: None,
    }),
    text_document: Some(TextDocumentClientCapabilities {
        synchronization: None,
        completion: None,
        hover: None,
        signature_help: None,
        references: None,
        document_highlight: None,
        document_symbol: None,
        formatting: None,
        range_formatting: None,
        on_type_formatting: None,
        declaration: None,
        definition: Some(GotoCapability {
            dynamic_registration: None,
            link_support: Some(false),
        }),
        type_definition: None,
        implementation: None,
        code_action: None,
        code_lens: None,
        document_link: None,
        color_provider: None,
        rename: None,
        publish_diagnostics: None,
        folding_range: None,
    }),
    experimental: None,
    window: Some(WindowClientCapabilities {
        work_done_progress: Some(true),
    }),
};
